package com.hu.mybatis.utils;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;

public class SqlSessionUtils {

    public static SqlSession getSqlSession(){
        SqlSession sqlSession = null;
        try {
            // 读取 MyBatis 的核心配置文件
            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
            // 通过核心配置文件所对应的字节输入流创建工厂类 SqlSessionFactory,生产 SqlSession 对象
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
            // 创建 SqlSession 对象,此时通过 SqlSession 对象所操作的 sql 都必须手动提交或回滚事务
//            sqlSession = sqlSessionFactory.openSession();
            // 创建 SqlSession 对象,此时通过 SqlSession 对象所操作的 sql 都会自动提交
            sqlSession = sqlSessionFactory.openSession(true);
        }catch (IOException e){
            e.printStackTrace();
        }
        return sqlSession;
    }

}
